package main;

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStreamReader;

/**
 * 在父类中定义处理的流程，在子类中实现具体处理内容的 Template Method 模式
 */
public abstract class AbstractDisplay {

    // open、print、close 交给子类去实现的抽象方法
    protected abstract void open();

    protected abstract void print();

    protected abstract void close();

    // display 就相当于一个模板方法，定义了 open、print、close 执行流程，但其方法的实现交给了 子类
    public final void display(){
        open();
        for (int i = 0; i < 5; i++) {
            print();
        }
        close();
    }

}
